// vite.config.js
import { defineConfig } from "file:///Users/moby/workspace/work/merchant_payfaz/node_modules/vite/dist/node/index.js";
import vue from "file:///Users/moby/workspace/work/merchant_payfaz/node_modules/@vitejs/plugin-vue/dist/index.mjs";
import { resolve } from "path";

// src/utils/utils.js
import dayjs from "file:///Users/moby/workspace/work/merchant_payfaz/node_modules/dayjs/dayjs.min.js";
import { ElMessage } from "file:///Users/moby/workspace/work/merchant_payfaz/node_modules/element-plus/es/index.mjs";
import CryptoJS from "file:///Users/moby/workspace/work/merchant_payfaz/node_modules/crypto-js/index.js";
var wrapperEnv = () => {
  const baseURL = process.env.NODE_ENV === "development" ? "https://test-api.payfaz.cc/" : "https://api.payfaz.cc/";
  return baseURL;
};

// vite.config.js
var __vite_injected_original_dirname = "/Users/moby/workspace/work/merchant_payfaz";
var vite_config_default = defineConfig({
  plugins: [
    vue()
  ],
  resolve: {
    alias: {
      "@": resolve(__vite_injected_original_dirname, "./src")
    }
  },
  server: {
    port: 5550,
    open: true,
    // cors: true,
    proxy: {
      "/api": {
        target: wrapperEnv(),
        // 后端接口的域名
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, "")
      }
    }
  }
});
export {
  vite_config_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiLCAic3JjL3V0aWxzL3V0aWxzLmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL21vYnkvd29ya3NwYWNlL3dvcmsvbWVyY2hhbnRfcGF5ZmF6XCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvbW9ieS93b3Jrc3BhY2Uvd29yay9tZXJjaGFudF9wYXlmYXovdml0ZS5jb25maWcuanNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL21vYnkvd29ya3NwYWNlL3dvcmsvbWVyY2hhbnRfcGF5ZmF6L3ZpdGUuY29uZmlnLmpzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZSdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuXG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IHdyYXBwZXJFbnYgfSBmcm9tIFwiLi9zcmMvdXRpbHMvdXRpbHNcIjtcblxuXG4vLyBodHRwczovL3ZpdGVqcy5kZXYvY29uZmlnL1xuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcGx1Z2luczogW3Z1ZSgpLFxuICBdLFxuICByZXNvbHZlOiB7XG4gICAgYWxpYXM6IHtcbiAgICAgIFwiQFwiOiByZXNvbHZlKF9fZGlybmFtZSwgXCIuL3NyY1wiKVxuICAgIH1cbiAgfSxcbiAgc2VydmVyOiB7XG4gICAgcG9ydDogNTU1MCxcbiAgICBvcGVuOiB0cnVlLFxuICAgIC8vIGNvcnM6IHRydWUsXG4gICAgcHJveHk6IHtcbiAgICAgICcvYXBpJzoge1xuICAgICAgICB0YXJnZXQ6IHdyYXBwZXJFbnYoKSwgLy8gXHU1NDBFXHU3QUVGXHU2M0E1XHU1M0UzXHU3Njg0XHU1N0RGXHU1NDBEXG4gICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgcmV3cml0ZTogcGF0aCA9PiBwYXRoLnJlcGxhY2UoL15cXC9hcGkvLCAnJyksXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG5cbn0pXG5cblxuXG4vLyBpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xuLy8gaW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnXG5cbi8vIGltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwicGF0aFwiO1xuXG4vLyBleHBvcnQgZGVmYXVsdCAoeyBtb2RlIH0pID0+IHtcbi8vICAgY29uc3QgaXNQcm9kdWN0aW9uID0gbW9kZSA9PT0gJ3Byb2R1Y3Rpb24nO1xuLy8gICBjb25zdCBhcGlCYXNlVXJsID0gaXNQcm9kdWN0aW9uID8gaW1wb3J0Lm1ldGEuZW52LlZJVEVfQVBJIDogJ2h0dHBzOi8vdGVzdC1hcGkucGF5ZmF6LmNjLyc7XG5cbi8vICAgcmV0dXJuIGRlZmluZUNvbmZpZyh7XG4vLyAgICAgcGx1Z2luczogW3Z1ZSgpXSxcbi8vICAgICByZXNvbHZlOiB7XG4vLyAgICAgICBhbGlhczoge1xuLy8gICAgICAgICBcIkBcIjogcmVzb2x2ZShfX2Rpcm5hbWUsIFwiLi9zcmNcIilcbi8vICAgICAgIH1cbi8vICAgICB9LFxuLy8gICAgIHNlcnZlcjoge1xuLy8gICAgICAgcG9ydDogNTU1MCxcbi8vICAgICAgIG9wZW46IHRydWUsXG4vLyAgICAgICBwcm94eToge1xuLy8gICAgICAgICAnL2FwaSc6IHtcbi8vICAgICAgICAgICB0YXJnZXQ6IGFwaUJhc2VVcmwsIC8vIFx1NjgzOVx1NjM2RVx1NzNBRlx1NTg4M1x1OTAwOVx1NjJFOSBBUEkgXHU1NzMwXHU1NzQwXG4vLyAgICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuLy8gICAgICAgICAgIHJld3JpdGU6IHBhdGggPT4gcGF0aC5yZXBsYWNlKC9eXFwvYXBpLywgJycpLFxuLy8gICAgICAgICB9LFxuLy8gICAgICAgfSxcbi8vICAgICB9LFxuLy8gICB9KTtcbi8vIH1cblxuXG4vLyBpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJztcbi8vIGltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJztcblxuLy8gaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJ3BhdGgnO1xuXG4vLyBleHBvcnQgZGVmYXVsdCAoeyBjb21tYW5kIH0pID0+IHtcbi8vICAgY29uc3QgaXNQcm9kdWN0aW9uID0gY29tbWFuZCA9PT0gJ2J1aWxkJztcblxuLy8gICByZXR1cm4gZGVmaW5lQ29uZmlnKHtcbi8vICAgICBwbHVnaW5zOiBbdnVlKCldLFxuLy8gICAgIHJlc29sdmU6IHtcbi8vICAgICAgIGFsaWFzOiB7XG4vLyAgICAgICAgICdAJzogcmVzb2x2ZShfX2Rpcm5hbWUsICcuL3NyYycpLFxuLy8gICAgICAgfSxcbi8vICAgICB9LFxuLy8gICAgIHNlcnZlcjoge1xuLy8gICAgICAgcG9ydDogNTU1MCxcbi8vICAgICAgIG9wZW46IHRydWUsXG4vLyAgICAgfSxcbi8vICAgICBkZWZpbmU6IHtcbi8vICAgICAgIC8vIFx1OEJCRVx1N0Y2RVx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRlxuLy8gICAgICAgX19FTlZfXzogaXNQcm9kdWN0aW9uID8gJ3Byb2R1Y3Rpb24nIDogJ2RldmVsb3BtZW50Jyxcbi8vICAgICB9LFxuLy8gICAgIGJ1aWxkOiB7XG4vLyAgICAgICAvLyBcdTY4MzlcdTYzNkVcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0ZcdThCQkVcdTdGNkVcdTRFMERcdTU0MENcdTc2ODRcdThGOTNcdTUxRkFcdTc2RUVcdTVGNTVcbi8vICAgICAgIG91dERpcjogaXNQcm9kdWN0aW9uID8gJ2Rpc3QtcHJvZHVjdGlvbicgOiAnZGlzdC1kZXZlbG9wbWVudCcsXG4vLyAgICAgfSxcbi8vICAgfSk7XG4vLyB9O1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvbW9ieS93b3Jrc3BhY2Uvd29yay9tZXJjaGFudF9wYXlmYXovc3JjL3V0aWxzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvbW9ieS93b3Jrc3BhY2Uvd29yay9tZXJjaGFudF9wYXlmYXovc3JjL3V0aWxzL3V0aWxzLmpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9tb2J5L3dvcmtzcGFjZS93b3JrL21lcmNoYW50X3BheWZhei9zcmMvdXRpbHMvdXRpbHMuanNcIjsvL1x1NjI4QVx1NkJFQlx1NzlEMiBcdTUzRDhcdTYyMTBcdTc5RDJcbi8vIGV4cG9ydCBjb25zdCB0aW1lc3RhbXAgPSAodmFsdWUpID0+IHtcbi8vICAgICByZXR1cm4gdmFsdWUgLyAxMDAwO1xuLy8gICB9O1xuXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XG4vLyBpbXBvcnQgKiBhcyBYTFNYIGZyb20gXCJ4bHN4XCI7IC8vIFZ1ZTMgXHU3MjQ4XHU2NzJDXG5pbXBvcnQgeyBFbE1lc3NhZ2UgfSBmcm9tIFwiZWxlbWVudC1wbHVzXCI7XG5cbmltcG9ydCBDcnlwdG9KUyBmcm9tIFwiY3J5cHRvLWpzXCI7XG5sZXQgSVYgPSBudWxsO1xubGV0IEtFWSA9IG51bGw7XG5cbmV4cG9ydCBjb25zdCB3cmFwcGVyRW52ID0gKCkgPT4ge1xuICAvLyAgY29uc29sZS5sb2coXCJOT0RFX0VOVlwiLCBwcm9jZXNzLmVudi5OT0RFX0VOVik7XG5cbiAgY29uc3QgYmFzZVVSTCA9XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIlxuICAgICAgPyBcImh0dHBzOi8vdGVzdC1hcGkucGF5ZmF6LmNjL1wiXG4gICAgICA6IFwiaHR0cHM6Ly9hcGkucGF5ZmF6LmNjL1wiO1xuXG4gIHJldHVybiBiYXNlVVJMO1xufTtcblxuZXhwb3J0IGNvbnN0IHJldGFpblR3b0RlY2ltYWxzID0gKG51bSwgdHlwZSkgPT4ge1xuICBpZiAodHlwZSA9PSBcImJhbGFuY2VcIikge1xuICAgIHJldHVybiBNYXRoLmZsb29yKG51bSAqIDEwMCkgLyAxMDA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IobnVtICogMTAwMDAwMDAwKSAvIDEwMDAwMDAwMDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHRydW5jYXRlRGVjaW1hbHMgPSAobnVtLCBkaWdpdHMpID0+IHtcbiAgdmFyIG51bVN0ciA9IG51bS50b1N0cmluZygpO1xuICAvLyBcdTU5ODJcdTY3OUNcdTZDQTFcdTY3MDlcdTVDMEZcdTY1NzBcdTcwQjlcdUZGMENcdTUyMTlcdTc2RjRcdTYzQTVcdTg4NjVcdThEQjNcdTYzMDdcdTVCOUFcdTRGNERcdTY1NzBcdTc2ODRcdTVDMEZcdTY1NzBcdTVFNzZcdThGRDRcdTU2REVcbiAgaWYgKG51bVN0ci5pbmRleE9mKFwiLlwiKSA9PT0gLTEpIHtcbiAgICByZXR1cm4gbnVtLnRvRml4ZWQoZGlnaXRzKTtcbiAgfVxuXG4gIC8vIFx1NTIwNlx1NTI3Mlx1NjU3NFx1NjU3MFx1OTBFOFx1NTIwNlx1NTQ4Q1x1NUMwRlx1NjU3MFx1OTBFOFx1NTIwNlxuICB2YXIgcGFydHMgPSBudW1TdHIuc3BsaXQoXCIuXCIpO1xuICB2YXIgaW50ZWdlclBhcnQgPSBwYXJ0c1swXTtcbiAgdmFyIGRlY2ltYWxQYXJ0ID0gcGFydHNbMV07XG5cbiAgLy8gXHU1OTgyXHU2NzlDXHU1QzBGXHU2NTcwXHU5MEU4XHU1MjA2XHU4RDg1XHU4RkM3XHU2MzA3XHU1QjlBXHU3Njg0XHU0RjREXHU2NTcwXHVGRjBDXHU1MjE5XHU2MjJBXHU1M0Q2XHU1MjREXHU2MzA3XHU1QjlBXHU0RjREXHU2NTcwXG4gIGlmIChkZWNpbWFsUGFydC5sZW5ndGggPiBkaWdpdHMpIHtcbiAgICBkZWNpbWFsUGFydCA9IGRlY2ltYWxQYXJ0LnN1YnN0cmluZygwLCBkaWdpdHMpO1xuICB9XG5cbiAgLy8gXHU4ODY1XHU4REIzXHU0RTBEXHU4REIzXHU2MzA3XHU1QjlBXHU0RjREXHU2NTcwXHU3Njg0XHU5MEU4XHU1MjA2XG4gIC8vIGRlY2ltYWxQYXJ0ID0gZGVjaW1hbFBhcnQucGFkRW5kKGRpZ2l0cywgXCIwXCIpO1xuXG4gIC8vIFx1NjJGQ1x1NjNBNVx1NjU3NFx1NjU3MFx1OTBFOFx1NTIwNlx1NTQ4Q1x1NTkwNFx1NzQwNlx1NTQwRVx1NzY4NFx1NUMwRlx1NjU3MFx1OTBFOFx1NTIwNlxuICByZXR1cm4gaW50ZWdlclBhcnQgKyBcIi5cIiArIGRlY2ltYWxQYXJ0O1xufTtcblxuLypcbiAqIFx1Njc0M1x1OTY1MFx1NTIyNFx1NjVBRFx1RkYwQ1x1NTFCM1x1NUI5QVx1NjYyRlx1NTQyNlx1NjUzRVx1ODg0Q1xuICovXG5leHBvcnQgY29uc3QgYXV0aG9yaXR5SnVkZ21lbnQgPSAoY2FsbGJhY2spID0+IHtcbiAgY2FsbGJhY2sgJiYgY2FsbGJhY2soKTtcbn07XG5leHBvcnQgY29uc3QgZm9ybWF0RGF0ZSA9ICh2KSA9PiB7XG4gIGlmICh2KSB7XG4gICAgLy8gXHU1QzA2RGF0ZSgpXHU1QkY5XHU4QzYxXHU4RjZDXHU2MjEwWVlZWS1NTS1ERCBISDpNTTpTU1x1NjgzQ1x1NUYwRlxuICAgIGNvbnN0IHllYXIgPSB2LmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGggPSB2LmdldE1vbnRoKCkgKyAxIDwgMTAgPyBgMCR7di5nZXRNb250aCgpICsgMX1gIDogdi5nZXRNb250aCgpO1xuICAgIGNvbnN0IGRheSA9IHYuZ2V0RGF0ZSgpICsgMSA8IDEwID8gYDAke3YuZ2V0RGF0ZSgpICsgMX1gIDogdi5nZXREYXRlKCk7XG4gICAgY29uc3QgaG91ciA9IHYuZ2V0SG91cnMoKSA8IDEwID8gYDAke3YuZ2V0SG91cnMoKX1gIDogdi5nZXRIb3VycygpO1xuICAgIGNvbnN0IG1pbnV0ZSA9IHYuZ2V0TWludXRlcygpIDwgMTAgPyBgMCR7di5nZXRNaW51dGVzKCl9YCA6IHYuZ2V0TWludXRlcygpO1xuICAgIGNvbnN0IHNlY29uZCA9IHYuZ2V0U2Vjb25kcygpIDwgMTAgPyBgMCR7di5nZXRTZWNvbmRzKCl9YCA6IHYuZ2V0U2Vjb25kcygpO1xuICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX0gJHtob3VyfToke21pbnV0ZX06JHtzZWNvbmR9YDtcbiAgfVxuICByZXR1cm4gXCItXCI7XG59O1xuLy8gXHU1QzA2XHU3OUQyXHU2NTcwXHU4RjZDXHU2MjEwWVlZWS1NTS1ERCBISDpNTTpTU1x1NjgzQ1x1NUYwRlxuZXhwb3J0IGNvbnN0IGZvcm1hdERhdGVzID0gKHRpbWVzLCBmKSA9PiB7XG4gIGxldCBmbXQgPSBcIlwiO1xuICBpZiAoZiA9PSBcImRheVwiKSB7XG4gICAgZm10ID0gXCJZWVlZLU1NLUREXCI7XG4gIH0gZWxzZSBpZiAoZiA9PSBcInRpbWVcIikge1xuICAgIGZtdCA9IFwiSEg6bW06c3NcIjtcbiAgfSBlbHNlIHtcbiAgICBmbXQgPSBcIllZWVktTU0tREQgSEg6bW06c3NcIjtcbiAgfVxuICByZXR1cm4gdGltZXMgPiAwID8gZGF5anMudW5peCh0aW1lcykuZm9ybWF0KGZtdCkgOiBcIi1cIjtcbn07XG5cbi8vXHU2ODNDXHU1RjBGXHU1MzE2XHU2NUY2XHU5NUY0XG5leHBvcnQgY29uc3QgZm9ybWF0dGVyVGltZSA9IChyb3csIGNvbHVtbiwgY2VsbFZhbHVlLCBmKSA9PiB7XG4gIC8vICBjb25zdCBmbXQgPSBmID09ICdkYXknID8gXCJZWVlZLU1NLUREXCIgOiBcIllZWVktTU0tREQgSEg6bW06c3NcIlxuICBsZXQgZm10ID0gXCJcIjtcbiAgaWYgKGYgPT0gXCJkYXlcIikge1xuICAgIGZtdCA9IFwiWVlZWS1NTS1ERFwiO1xuICB9IGVsc2UgaWYgKGYgPT0gXCJ0aW1lXCIpIHtcbiAgICBmbXQgPSBcIkhIOm1tOnNzXCI7XG4gIH0gZWxzZSB7XG4gICAgZm10ID0gXCJZWVlZLU1NLUREIEhIOm1tOnNzXCI7XG4gIH1cbiAgcmV0dXJuIGNlbGxWYWx1ZSA+IDAgPyBkYXlqcy51bml4KGNlbGxWYWx1ZSkuZm9ybWF0KGZtdCkgOiBcIi1cIjtcbn07XG4vL1x1NjgzQ1x1NUYwRlx1NTMxNlx1NjVGNlx1OTVGNFxuZXhwb3J0IGNvbnN0IGZvcm1hdHRlclV0Y1RpbWUgPSAocm93LCBjb2x1bW4sIGNlbGxWYWx1ZSwgaW5kZXgpID0+IHtcbiAgY29uc3QgdG1wID0gbmV3IERhdGUoY2VsbFZhbHVlKTtcbiAgcmV0dXJuIGZvcm1hdERhdGUodG1wKTtcbiAgLy8gcmV0dXJuIGNlbGxWYWx1ZSA+IDAgPyBkYXlqcy51bml4KHRtcCkuZm9ybWF0KFwiWVlZWS1NTS1ERCBISDptbTpzc1wiKSA6IFwiLVwiO1xufTtcbi8vIFx1NjgzQ1x1NUYwRlx1NTMxNlx1OEY2Q1x1NjM2MiBcdTY2MkZcdTMwMDFcdTU0MjZcbmV4cG9ydCBjb25zdCBmb3JtYXR0ZXIgPSAocm93LCBjb2x1bW4sIGNlbGxWYWx1ZSwgaW5kZXgpID0+IHtcbiAgcmV0dXJuIGNlbGxWYWx1ZSA/IFwiXHU2NjJGXCIgOiBcIlx1NTQyNlwiO1xufTtcblxuLy9cdTYyOEFcdTZCRUJcdTc5RDIgXHU1M0Q4XHU2MjEwXHU3OUQyXG5leHBvcnQgY29uc3QgdGltZXN0YW1wID0gKHZhbHVlKSA9PiB7XG4gIHJldHVybiB2YWx1ZSAvIDEwMDA7XG59O1xuXG4vL1x1NTkwNFx1NzQwNlx1NjU3MFx1NUI1N1x1NTM0M1x1NTIwNlx1NEY0RFxuZXhwb3J0IGNvbnN0IG51bWJlclRvQ3VycmVuY3lObyA9ICh2YWx1ZSkgPT4ge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gMDtcbiAgLy8gXHU4M0I3XHU1M0Q2XHU2NTc0XHU2NTcwXHU5MEU4XHU1MjA2XG4gIGNvbnN0IGludFBhcnQgPSBNYXRoLnRydW5jKHZhbHVlKTtcbiAgLy8gXHU2NTc0XHU2NTcwXHU5MEU4XHU1MjA2XHU1OTA0XHU3NDA2XHVGRjBDXHU1ODlFXHU1MkEwLFxuICBjb25zdCBpbnRQYXJ0Rm9ybWF0ID0gaW50UGFydFxuICAgIC50b1N0cmluZygpXG4gICAgLnJlcGxhY2UoLyhcXGQpKD89KD86XFxkezN9KSskKS9nLCBcIiQxLFwiKTtcbiAgLy8gXHU5ODg0XHU1QjlBXHU0RTQ5XHU1QzBGXHU2NTcwXHU5MEU4XHU1MjA2XG4gIGxldCBmbG9hdFBhcnQgPSBcIlwiO1xuICAvLyBcdTVDMDZcdTY1NzBcdTUwM0NcdTYyMkFcdTUzRDZcdTRFM0FcdTVDMEZcdTY1NzBcdTkwRThcdTUyMDZcdTU0OENcdTY1NzRcdTY1NzBcdTkwRThcdTUyMDZcbiAgY29uc3QgdmFsdWVBcnJheSA9IHZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpO1xuICBpZiAodmFsdWVBcnJheS5sZW5ndGggPT09IDIpIHtcbiAgICAvLyBcdTY3MDlcdTVDMEZcdTY1NzBcdTkwRThcdTUyMDZcbiAgICBmbG9hdFBhcnQgPSB2YWx1ZUFycmF5WzFdLnRvU3RyaW5nKCk7IC8vIFx1NTNENlx1NUY5N1x1NUMwRlx1NjU3MFx1OTBFOFx1NTIwNlxuICAgIHJldHVybiBpbnRQYXJ0Rm9ybWF0ICsgXCIuXCIgKyBmbG9hdFBhcnQ7XG4gIH1cbiAgcmV0dXJuIGludFBhcnRGb3JtYXQgKyBmbG9hdFBhcnQ7XG59O1xuXG4vLyBcdTVCRkNcdTUxRkEvXHU0RTBCXHU4RjdERXhjZWxcbmV4cG9ydCBjb25zdCBleHBvcnRFeGNlbCA9IChkYXRhLCBmaWxlTmFtZSkgPT4ge1xuICAvLyBkYXRhIC0tXHU2NTcwXHU2MzZFXHU2RDQxXG4gIC8vIGZpbGVOYW1lIC0tIFx1NjU4N1x1NEVGNlx1NTQwRFx1NzlGMFxuICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6IFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCIgfSk7XG4gIGNvbnN0IGhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICBjb25zdCBlbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICBlbGluay5kb3dubG9hZCA9IGAke2ZpbGVOYW1lfS54bHNgO1xuICBlbGluay5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gIGVsaW5rLmhyZWYgPSBocmVmO1xuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsaW5rKTtcbiAgZWxpbmsuY2xpY2soKTtcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGluayk7XG4gIFVSTC5yZXZva2VPYmplY3RVUkwoaHJlZik7XG59O1xuXG4vLyBcdTVCRkNcdTUxRkFjc3ZcdTY1ODdcdTRFRjZcbmV4cG9ydCBjb25zdCBleHBvcnRDU1YgPSAoZGF0YSwgZmlsZU5hbWUpID0+IHtcbiAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwgeyB0eXBlOiBcInRleHQvY3N2O2NoYXJzZXQ9dXRmLTg7XCIgfSk7XG4gIGNvbnN0IGhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICBjb25zdCBlbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICBlbGluay5ocmVmID0gaHJlZjtcbiAgZWxpbmsuZG93bmxvYWQgPSBgJHtmaWxlTmFtZX0uY3N2YDtcbiAgZWxpbmsuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsaW5rKTtcbiAgZWxpbmsuY2xpY2soKTtcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGluayk7XG4gIFVSTC5yZXZva2VPYmplY3RVUkwoaHJlZik7XG59O1xuXG4vLyBcdTk0RjZcdTg4NENcdTUzNjFcdTUzRjdcdTUzRDhcdTY2MUZcdTUzRjdcbmV4cG9ydCBjb25zdCBtYXNrQmFua0NhcmROdW1iZXIgPSAoY2FyZE51bWJlcikgPT4ge1xuICBpZiAoIWNhcmROdW1iZXIgfHwgdHlwZW9mIGNhcmROdW1iZXIgIT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gY2FyZE51bWJlcjsgLy8gXHU1OTgyXHU2NzlDXHU4RjkzXHU1MTY1XHU2NUUwXHU2NTQ4XHVGRjBDXHU3NkY0XHU2M0E1XHU4RkQ0XHU1NkRFXG4gIH1cblxuICBjb25zdCBjYXJkTGVuZ3RoID0gY2FyZE51bWJlci5sZW5ndGg7XG4gIGlmIChjYXJkTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFwiXCI7IC8vIFx1NTk4Mlx1Njc5Q1x1OTRGNlx1ODg0Q1x1NTM2MVx1NTNGN1x1NEUzQVx1N0E3QVx1RkYwQ1x1OEZENFx1NTZERVx1N0E3QVx1NUI1N1x1N0IyNlx1NEUzMlxuICB9XG5cbiAgLy8gXHU1MjFCXHU1RUZBXHU0RTAwXHU0RTJBXHU3NTMxXHU2NjFGXHU1M0Y3XHU3RUM0XHU2MjEwXHU3Njg0XHU1QjU3XHU3QjI2XHU0RTMyXHVGRjBDXHU5NTdGXHU1RUE2XHU0RTBFXHU5NEY2XHU4ODRDXHU1MzYxXHU1M0Y3XHU3NkY4XHU1NDBDXG4gIGNvbnN0IG1hc2tlZE51bWJlciA9IGNhcmRMZW5ndGggPiAwID8gXCIqXCIucmVwZWF0KGNhcmRMZW5ndGgpIDogXCJcIjtcblxuICByZXR1cm4gbWFza2VkTnVtYmVyO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlTWFza2VkU3RyaW5nID0gKCkgPT4ge1xuICBsZXQgbWFza2VkU3RyaW5nID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgbWFza2VkU3RyaW5nICs9IFwiKlwiO1xuICAgIGlmICgoaSArIDEpICUgNCA9PT0gMCAmJiBpIDwgMTEpIHtcbiAgICAgIG1hc2tlZFN0cmluZyArPSBcIiBcIjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1hc2tlZFN0cmluZztcbn07XG5cbi8vIFx1NkUwNVx1N0E3QVx1NUJGOVx1OEM2MVx1NTAzQ1xuZXhwb3J0IGNvbnN0IHJlc2V0Rm9ybSA9IChzb3VyY2UpID0+IHtcbiAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoc291cmNlLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIHNvdXJjZVtrZXldID0gXCJcIjtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc291cmNlO1xufTtcblxuLy8gXHU3NTFGXHU2MjEwMTZcdTRGNERcdTk2OEZcdTY3M0FcdTVCNTdcdTdCMjZcdTRFMzJcbmV4cG9ydCBjb25zdCBnZW5lcmF0ZVJhbmRvbVN0cmluZyA9IChsZW5ndGggPSAxNikgPT4ge1xuICBjb25zdCBjaGFyYWN0ZXJzID1cbiAgICBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5XCI7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVycy5sZW5ndGgpKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBiYXNlNjRcbmV4cG9ydCBjb25zdCBCYXNlNjQgPSB7XG4gIC8vIHByaXZhdGUgcHJvcGVydHlcbiAgX2tleVN0cjogXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwiLFxuXG4gIGVuY29kZTogKGlucHV0KSA9PiB7XG4gICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgbGV0IGNocjEsIGNocjIsIGNocjMsIGVuYzEsIGVuYzIsIGVuYzMsIGVuYzQ7XG4gICAgbGV0IGkgPSAwO1xuICAgIGlucHV0ID0gQmFzZTY0Ll91dGY4X2VuY29kZShpbnB1dCk7XG4gICAgd2hpbGUgKGkgPCBpbnB1dC5sZW5ndGgpIHtcbiAgICAgIGNocjEgPSBpbnB1dC5jaGFyQ29kZUF0KGkrKyk7XG4gICAgICBjaHIyID0gaW5wdXQuY2hhckNvZGVBdChpKyspO1xuICAgICAgY2hyMyA9IGlucHV0LmNoYXJDb2RlQXQoaSsrKTtcbiAgICAgIGVuYzEgPSBjaHIxID4+IDI7XG4gICAgICBlbmMyID0gKChjaHIxICYgMykgPDwgNCkgfCAoY2hyMiA+PiA0KTtcbiAgICAgIGVuYzMgPSAoKGNocjIgJiAxNSkgPDwgMikgfCAoY2hyMyA+PiA2KTtcbiAgICAgIGVuYzQgPSBjaHIzICYgNjM7XG4gICAgICBpZiAoaXNOYU4oY2hyMikpIHtcbiAgICAgICAgZW5jMyA9IGVuYzQgPSA2NDtcbiAgICAgIH0gZWxzZSBpZiAoaXNOYU4oY2hyMykpIHtcbiAgICAgICAgZW5jNCA9IDY0O1xuICAgICAgfVxuICAgICAgb3V0cHV0ID1cbiAgICAgICAgb3V0cHV0ICtcbiAgICAgICAgQmFzZTY0Ll9rZXlTdHIuY2hhckF0KGVuYzEpICtcbiAgICAgICAgQmFzZTY0Ll9rZXlTdHIuY2hhckF0KGVuYzIpICtcbiAgICAgICAgQmFzZTY0Ll9rZXlTdHIuY2hhckF0KGVuYzMpICtcbiAgICAgICAgQmFzZTY0Ll9rZXlTdHIuY2hhckF0KGVuYzQpO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9LFxuXG4gIC8vIHB1YmxpYyBtZXRob2QgZm9yIGRlY29kaW5nXG4gIGRlY29kZTogKGlucHV0KSA9PiB7XG4gICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgbGV0IGNocjEsIGNocjIsIGNocjM7XG4gICAgbGV0IGVuYzEsIGVuYzIsIGVuYzMsIGVuYzQ7XG4gICAgbGV0IGkgPSAwO1xuICAgIC8vIHRvZG8gW11cdTRFMkRcdTYyRUNcdTUzRjdcdTkxQ0NcdTk3NjJcdTRGN0ZcdTc1MjhcdThGNkNcdTc5RkJcdTdCMjZcdTY2MkZcdTU5MUFcdTRGNTlcdTc2ODRcbiAgICAvLyBpbnB1dCA9IGlucHV0LnJlcGxhY2UoL1teQS1aYS16MC05XFwrXFwvXFw9XS9nLCAnJylcbiAgICBpbnB1dCA9IGlucHV0LnJlcGxhY2UoL1teQS1aYS16MC05XFx1MDAyYlxcdTAwMmZcXHUwMDNkXS9nLCBcIlwiKTtcbiAgICB3aGlsZSAoaSA8IGlucHV0Lmxlbmd0aCkge1xuICAgICAgZW5jMSA9IEJhc2U2NC5fa2V5U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpO1xuICAgICAgZW5jMiA9IEJhc2U2NC5fa2V5U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpO1xuICAgICAgZW5jMyA9IEJhc2U2NC5fa2V5U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpO1xuICAgICAgZW5jNCA9IEJhc2U2NC5fa2V5U3RyLmluZGV4T2YoaW5wdXQuY2hhckF0KGkrKykpO1xuICAgICAgY2hyMSA9IChlbmMxIDw8IDIpIHwgKGVuYzIgPj4gNCk7XG4gICAgICBjaHIyID0gKChlbmMyICYgMTUpIDw8IDQpIHwgKGVuYzMgPj4gMik7XG4gICAgICBjaHIzID0gKChlbmMzICYgMykgPDwgNikgfCBlbmM0O1xuICAgICAgb3V0cHV0ID0gb3V0cHV0ICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaHIxKTtcbiAgICAgIGlmIChlbmMzICE9PSA2NCkge1xuICAgICAgICBvdXRwdXQgPSBvdXRwdXQgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocjIpO1xuICAgICAgfVxuICAgICAgaWYgKGVuYzQgIT09IDY0KSB7XG4gICAgICAgIG91dHB1dCA9IG91dHB1dCArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyMyk7XG4gICAgICB9XG4gICAgfVxuICAgIG91dHB1dCA9IEJhc2U2NC5fdXRmOF9kZWNvZGUob3V0cHV0KTtcbiAgICByZXR1cm4gb3V0cHV0O1xuICB9LFxuXG4gIF91dGY4X2VuY29kZTogKHN0cmluZykgPT4ge1xuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC9cXHJcXG4vZywgXCJcXG5cIik7XG4gICAgbGV0IHV0ZnRleHQgPSBcIlwiO1xuICAgIGZvciAobGV0IG4gPSAwOyBuIDwgc3RyaW5nLmxlbmd0aDsgbisrKSB7XG4gICAgICBsZXQgYyA9IHN0cmluZy5jaGFyQ29kZUF0KG4pO1xuICAgICAgaWYgKGMgPCAxMjgpIHtcbiAgICAgICAgdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICAgICAgfSBlbHNlIGlmIChjID4gMTI3ICYmIGMgPCAyMDQ4KSB7XG4gICAgICAgIHV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyA+PiA2KSB8IDE5Mik7XG4gICAgICAgIHV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyAmIDYzKSB8IDEyOCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1dGZ0ZXh0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKGMgPj4gMTIpIHwgMjI0KTtcbiAgICAgICAgdXRmdGV4dCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYyA+PiA2KSAmIDYzKSB8IDEyOCk7XG4gICAgICAgIHV0ZnRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoYyAmIDYzKSB8IDEyOCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1dGZ0ZXh0O1xuICB9LFxuXG4gIF91dGY4X2RlY29kZTogKHV0ZnRleHQpID0+IHtcbiAgICBsZXQgc3RyaW5nID0gXCJcIjtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IFtjLCBjMiwgYzNdID0gWzAsIDAsIDBdO1xuICAgIHdoaWxlIChpIDwgdXRmdGV4dC5sZW5ndGgpIHtcbiAgICAgIGMgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSk7XG4gICAgICBpZiAoYyA8IDEyOCkge1xuICAgICAgICBzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjKTtcbiAgICAgICAgaSsrO1xuICAgICAgfSBlbHNlIGlmIChjID4gMTkxICYmIGMgPCAyMjQpIHtcbiAgICAgICAgYzIgPSB1dGZ0ZXh0LmNoYXJDb2RlQXQoaSArIDEpO1xuICAgICAgICBzdHJpbmcgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgJiAzMSkgPDwgNikgfCAoYzIgJiA2MykpO1xuICAgICAgICBpICs9IDI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjMiA9IHV0ZnRleHQuY2hhckNvZGVBdChpICsgMSk7XG4gICAgICAgIGMzID0gdXRmdGV4dC5jaGFyQ29kZUF0KGkgKyAyKTtcbiAgICAgICAgc3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoXG4gICAgICAgICAgKChjICYgMTUpIDw8IDEyKSB8ICgoYzIgJiA2MykgPDwgNikgfCAoYzMgJiA2MylcbiAgICAgICAgKTtcbiAgICAgICAgaSArPSAzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9LFxufTtcblxuLy8gXHU1MkEwXHU1QkM2XG4vLyBcdTY3MkFcdTc2N0JcdTVGNTVcdUZGMUFiczY0KGVuY3J5cHQpXG4vLyBcdTVERjJcdTc2N0JcdTVGNTVcdUZGMUExMjMrYnM2NChpdikrJiticzY0KGVuY3J5cHQpXG5leHBvcnQgY29uc3QgZW5jcnlwdCA9IChkYXRhLCBrZXksIGl2LCBwcmVmaXgpID0+IHtcbiAgbGV0IHJhbmRvbVN0ciA9IFwiXCI7XG4gIGlmIChpdikge1xuICAgIHJhbmRvbVN0ciA9IGl2O1xuICB9IGVsc2Uge1xuICAgIHJhbmRvbVN0ciA9IGdlbmVyYXRlUmFuZG9tU3RyaW5nKCk7XG4gIH1cbiAgSVYgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShyYW5kb21TdHIpO1xuICAvLyBcdTU5ODJcdTY3OUNcdTY3MDlcdTRGMjBcdTkwMTJrZXlcdTc2ODRcdThCRERcdTRGN0ZcdTc1MjhcdTRGMjBcdTkwMTJcdTc2ODRcdUZGMENcdTU0MjZcdTUyMTlcdTRGN0ZcdTc1MjhcdTlFRDhcdThCQTRcdTc2ODRcbiAgaWYgKGtleSkge1xuICAgIEtFWSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGtleSk7XG4gIH0gZWxzZSB7XG4gICAgS0VZID0gSVY7XG4gIH1cbiAgbGV0IHNyY3MgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShkYXRhKTtcbiAgbGV0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KHNyY3MsIEtFWSwge1xuICAgIGl2OiBJVixcbiAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcbiAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczcsXG4gIH0pO1xuICAvLyBcdTUyMjRcdTY1QURcdTU5ODJcdTY3OUNcdTY3MkFcdTc2N0JcdTVGNTVcdTUyMTlcdTRFMERcdTYyRkNcdTYzQTVcdUZGMENcdTU0MjZcdTUyMTlcdTYyRkNcdTYzQTVcbiAgbGV0IHJlc3VsdCA9IG51bGw7XG4gIGlmIChpdikge1xuICAgIHJlc3VsdCA9XG4gICAgICBCYXNlNjQuZW5jb2RlKGl2KSArXG4gICAgICBcInZYQzh2XCIgK1xuICAgICAgQ3J5cHRvSlMuZW5jLkJhc2U2NC5zdHJpbmdpZnkoZW5jcnlwdGVkLmNpcGhlcnRleHQpO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9XG4gICAgICBCYXNlNjQuZW5jb2RlKHByZWZpeCArIHJhbmRvbVN0cikgK1xuICAgICAgXCJ2WEM4dlwiICtcbiAgICAgIENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KGVuY3J5cHRlZC5jaXBoZXJ0ZXh0KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gXHU4OUUzXHU1QkM2XG5leHBvcnQgY29uc3QgZGVjcnlwdCA9ICh3b3JkLCBrZXksIGl2KSA9PiB7XG4gIC8vIFx1NTk4Mlx1Njc5Q1x1NjcwOVx1NEYyMFx1OTAxMmtleVx1NzY4NFx1OEJERFx1NEY3Rlx1NzUyOFx1NEYyMFx1OTAxMlx1NzY4NFx1RkYwQ1x1NTQyNlx1NTIxOVx1NEY3Rlx1NzUyOFx1OUVEOFx1OEJBNFx1NzY4NFxuICBpZiAoa2V5KSB7XG4gICAgS0VZID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2Uoa2V5KTtcbiAgfSBlbHNlIHtcbiAgICBLRVkgPSBJVjtcbiAgfVxuICBsZXQgYmFzZTY0ID0gQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZSh3b3JkKTtcbiAgbGV0IHNyYyA9IENyeXB0b0pTLmVuYy5CYXNlNjQuc3RyaW5naWZ5KGJhc2U2NCk7XG4gIHZhciBkZWNyeXB0ID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQoc3JjLCBLRVksIHtcbiAgICBpdjogSVYsXG4gICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXG4gICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3LFxuICB9KTtcblxuICB2YXIgZGVjcnlwdGVkU3RyID0gZGVjcnlwdC50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOCk7XG4gIHJldHVybiBkZWNyeXB0ZWRTdHIudG9TdHJpbmcoKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQWdULFNBQVMsb0JBQW9CO0FBQzdVLE9BQU8sU0FBUztBQUVoQixTQUFTLGVBQWU7OztBQ0V4QixPQUFPLFdBQVc7QUFFbEIsU0FBUyxpQkFBaUI7QUFFMUIsT0FBTyxjQUFjO0FBSWQsSUFBTSxhQUFhLE1BQU07QUFHOUIsUUFBTSxVQUNKLFFBQVEsSUFBSSxhQUFhLGdCQUNyQixnQ0FDQTtBQUVOLFNBQU87QUFDVDs7O0FEdEJBLElBQU0sbUNBQW1DO0FBUXpDLElBQU8sc0JBQVEsYUFBYTtBQUFBLEVBQzFCLFNBQVM7QUFBQSxJQUFDLElBQUk7QUFBQSxFQUNkO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCxPQUFPO0FBQUEsTUFDTCxLQUFLLFFBQVEsa0NBQVcsT0FBTztBQUFBLElBQ2pDO0FBQUEsRUFDRjtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBO0FBQUEsSUFFTixPQUFPO0FBQUEsTUFDTCxRQUFRO0FBQUEsUUFDTixRQUFRLFdBQVc7QUFBQTtBQUFBLFFBQ25CLGNBQWM7QUFBQSxRQUNkLFNBQVMsVUFBUSxLQUFLLFFBQVEsVUFBVSxFQUFFO0FBQUEsTUFDNUM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUVGLENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg==
